archived sims/MixedPoissonAR1/GL/generate.R

# PURPOSE: Produce file and output for Mixed-Poisson AR(1) GL simulations
#
#
# AUTHORS: Stefanos Kechagias, James Livsey
#
# DATE:    May 2020
#
# R version 3.6.3


# Set working directory to location where all files should be written
# simulation_function.R should also live here
# setwd("~/github/countsFun/Sims/MixedPoissonAR1/GL")
setwd('C:/Users/Stef/Desktop/countsFun/Sims/MixedPoissonAR1/GL')


# Source main simulation function
source('simulation_function.R')

# Fixed parameters for all simulations
nsim <- 200
prob <- 1/4

# Parameter sequences
n_seq    <- c(100)
lam1_seq <- 2
lam2_seq <- c(3)
prob_seq <- 1/4
phi_seq <- c( .75)

# Loop and define parameters for each simulation
for(n_idx    in 1:length(n_seq)){
  for(lam1_idx in 1:length(lam1_seq)){
    for(lam2_idx in 1:length(lam2_seq)){
      for(phi_idx  in 1:length(phi_seq)){
        n    <- n_seq[n_idx]
        lam1 <- lam1_seq[lam1_idx]
        lam2 <- lam2_seq[lam2_idx]
        phi  <- phi_seq[phi_idx]

        PhiSign = ifelse(phi > 0, 'Pos', 'Neg')  # SIGN OF ar(1) param

        # File name
        fileName <- sprintf("MixedPois%s-%sAR1_GL_N%s_NS%s_Phi%s",
                            lam1, lam2, n, nsim, PhiSign)
        print(fileName)

        # Generate an R launch script
        contents = paste(
          sprintf("# This is an autogenerated script"),
          sprintf("n = %d", n),
          sprintf("lam1 = %d", lam1),
          sprintf("lam2 = %d", lam2),
          sprintf("prob = %f", prob),
          sprintf("phi = %f", phi),
          sprintf("nsim = %d", nsim),
          sprintf('df = simulation_mixedPoissonAR1_GL(n, lam1, lam2, phi, prob, nsim)'),
          sep = "\n"
        )
        ff = sprintf("%s.R", fileName)
        cat(contents, "\n", file = ff)

        # Source file you just created to get object 'df' in Global Environment
        source(ff)
        saveFileName <- paste0(fileName, ".RData")
        save(df, file = saveFileName)

      }
    }
  }
}
jlivsey/countsFun documentation built on March 9, 2023, 5:19 p.m.